package com.sisbibvir.unmsm.services;


import java.util.*;

import com.sisbibvir.unmsm.dao.JPAUtil;
import com.sisbibvir.unmsm.dao.LineaInvestigacionDAO;
import com.sisbibvir.unmsm.entidades.LineaDeInvestigacion;

public class LineaInvestigacionService {

	private JPAUtil objJpaUtil;
	private LineaInvestigacionDAO objLineaInvestigacionDao;
	private LineaDeInvestigacion objLineaInvestigacion;
	private List<LineaDeInvestigacion> arrLineaInvestigacion;
	private String descripcionEdicion; 
	private int idEdicion;
	private String sFiltro; 
	public LineaInvestigacionService() {
		objJpaUtil = new JPAUtil();
		objLineaInvestigacion = new LineaDeInvestigacion();
		objLineaInvestigacionDao = new LineaInvestigacionDAO(
				objJpaUtil.getEntityManager());
		arrLineaInvestigacion = objLineaInvestigacionDao.ListarBusqueda("");
	}

	public void AgregarLineaInvestigacion() {
		if (objLineaInvestigacion.getDescripcion() != null) {
			objLineaInvestigacionDao.create(objLineaInvestigacion);
			objLineaInvestigacion = new LineaDeInvestigacion();
			objLineaInvestigacionDao = null;
			objJpaUtil=null;
			System.gc();
		}
	}

	public void ActualizarEdicion(){
		idEdicion = objLineaInvestigacion.getId();
		descripcionEdicion = objLineaInvestigacion.getDescripcion();
	}
	
	public void ActualizarLineaInvestigacion() {
		objJpaUtil = new JPAUtil();
		objLineaInvestigacion = new LineaDeInvestigacion();
		objLineaInvestigacionDao = new LineaInvestigacionDAO(
				objJpaUtil.getEntityManager());
		objLineaInvestigacion.setId(idEdicion);
		objLineaInvestigacion.setDescripcion(descripcionEdicion);
		objLineaInvestigacionDao.update(objLineaInvestigacion);
		objJpaUtil = new JPAUtil();
		objLineaInvestigacionDao = new LineaInvestigacionDAO(
				objJpaUtil.getEntityManager());
		arrLineaInvestigacion = objLineaInvestigacionDao.ListarBusqueda("");
		objJpaUtil = null;
		objLineaInvestigacionDao = null;
		System.gc();
		
	}

	public void EliminarLineaInvestigacion() {
		objJpaUtil = new JPAUtil();
		objLineaInvestigacionDao = new LineaInvestigacionDAO(objJpaUtil.getEntityManager());
		objLineaInvestigacionDao.delete(objLineaInvestigacion);
		objJpaUtil = new JPAUtil();
		objLineaInvestigacionDao = new LineaInvestigacionDAO(objJpaUtil.getEntityManager());
		arrLineaInvestigacion = objLineaInvestigacionDao.ListarBusqueda("");
		objLineaInvestigacion = new LineaDeInvestigacion();
		objJpaUtil = null;
		objLineaInvestigacionDao = null;
		System.gc();
		
	}

	public void GenerarCodigo() {
		objJpaUtil = new JPAUtil();
		objLineaInvestigacionDao = new LineaInvestigacionDAO(
				objJpaUtil.getEntityManager());
		objLineaInvestigacion.setId(objLineaInvestigacionDao.generarCodigo());
	}

	public void BuscarLineaInvestigacion(){
		objJpaUtil = new JPAUtil();
		if(sFiltro == null){
			sFiltro = "";
		}
		objLineaInvestigacionDao = new LineaInvestigacionDAO(objJpaUtil.getEntityManager());
		arrLineaInvestigacion = objLineaInvestigacionDao.ListarBusqueda(sFiltro);
		objJpaUtil = null;
		System.gc();
	}
	
	public LineaDeInvestigacion getObjLineaInvestigacion() {
		return objLineaInvestigacion;
	}

	public void setObjLineaInvestigacion(
			LineaDeInvestigacion objLineaInvestigacion) {
		this.objLineaInvestigacion = objLineaInvestigacion;
	}

	public List<LineaDeInvestigacion> getArrLineaInvestigacion() {
		return arrLineaInvestigacion;
	}

	public void setArrLineaInvestigacion(
			List<LineaDeInvestigacion> arrLineaInvestigacion) {
		this.arrLineaInvestigacion = arrLineaInvestigacion;
	}

	public String getDescripcionEdicion() {
		return descripcionEdicion;
	}

	public void setDescripcionEdicion(String descripcionEdicion) {
		this.descripcionEdicion = descripcionEdicion;
	}

	public int getIdEdicion() {
		return idEdicion;
	}

	public void setIdEdicion(int idEdicion) {
		this.idEdicion = idEdicion;
	}

	public String getsFiltro() {
		return sFiltro;
	}

	public void setsFiltro(String sFiltro) {
		this.sFiltro = sFiltro;
	}
	
	

}
